﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<assert.h>
using namespace std;
//class Date
//{
//public:
//	Date(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//class A
//{
//public:
//	A(int a)
//		:_a(a)
//	{}
//private:
//	int _a;
//};
//
//class Date
//{
//public:
//	Date(int year, int month, int day)
//		: _year(year)
//		, _month(month)
//	{
//		_day = day;
//	}
//
//	void Print()
//	{
//		cout << "year = " << _year << " month = " << _month << " day = " << _day << endl;
//	}
//private:
//	int _year = 1;
//	int _month = 1;
//	int _day = 1;
//};
//
//int main(void)
//{
//	Date d1(2,2,2);
//	d1.Print();
//	return 0;
//}
//
//int main()
//{
//	int n = 0;
//	Date d1(2024, 5, 25, n);
//	d1.func();
//	cout << n << endl;
//	return 0;
//}

//typedef int DataType;
//class Stack
//{
//public:
//	Stack(size_t capacity)
//		:_array((DataType*)malloc(sizeof(DataType) * capacity))
//		,_size(0)
//		,_capacity(capacity)
//	{
//		if (NULL == _array)
//		{
//			perror("malloc申请空间失败!!!");
//			return;
//		}
//	}
//
//	void Push(DataType data)
//	{
//		// CheckCapacity();
//		_array[_size] = data;
//		_size++;
//	}
//
//	~Stack()
//	{
//		if (_array)
//		{
//			free(_array);
//			_array = NULL;
//			_capacity = 0;
//			_size = 0;
//		}
//	}
//private:
//	DataType* _array;
//	int _capacity;
//	int _size;
//};
//
//class MyQueue
//{
//public:
//	MyQueue(int capacity = 10)
//		:_st1(capacity)
//		,_st2(capacity)
//	{}
//private:
//	Stack _st1;
//	Stack _st2;
//};
//
//int main(void)
//{
//
//	return 0;
//}
//class A
//{
//public:
//    A(int a)
//        :_a1(a)
//        , _a2(_a1)
//    {}
//
//    void Print() {
//        cout << _a1 << " " << _a2 << endl;
//    }
//private:
//    int _a2;
//    int _a1;
//};
//
//int main() {
//    A aa(1);
//    aa.Print();
//}

////int main(void)
////{
////	A aa1 = 1;
////	cout << endl;
////	const A& ref = 2;
////}
//typedef A DataType;
//class Stack
//{
//public:
//	Stack(size_t capacity = 3)
//	{
//		_array = (DataType*)malloc(sizeof(DataType) * capacity);
//		if (NULL == _array)
//		{
//			perror("malloc申请空间失败!!!");
//			return;
//		}
//		_capacity = capacity;
//		_size = 0;
//	}
//	
//	void Push(DataType data)
//	{
//		// CheckCapacity();
//		_array[_size] = data;
//		_size++;
//	}
//
//	~Stack()
//	{
//		if (_array)
//		{
//			free(_array);
//			_array = NULL;
//			_capacity = 0;
//			_size = 0;
//		}
//	}
//private:
//	DataType* _array;
//	int _capacity;
//	int _size;
//};
// class B
//{
//public:
//	B(int i, int j)
//		:_b1(i)
//		,_b2(j)
//	{}
//	void Print()
//	{
//		cout << "_b1 = " << _b1 << "   _b2 = " << _b2 << endl;
//	}
//private:
//	int _b1;
//	int _b2;
//};
class A
{
public:
	A(int i)
		:_a(i)
	{
		cout << "构造函数" << endl;
	}
	A(const A& aa)
		:_a(aa._a)
	{
		cout << "拷贝构造函数" << endl;
	}
	~A()
	{
		cout << "析构函数" << endl;
	}
private:
	int _a;
};
//
int main(void)
{
	A aa1(0);//有名对象
	A(1);//匿名对象
	return 0;
}